In order to rotate a brushless DC motor, the rotation angle of the rotor (i.e., pole position) needs to be accurately detected or estimated. Two methods for driving a motor are conventionally known: One method detects a rotation angle using a rotation angle detection device such as a Hall element and drives the motor, and the other method estimates a rotation angle without using a rotation angle detection device, i.e., in a “sensorless” manner and drives the motor. In recent years, arithmetic devices such as a high-speed and high-performance microcomputer or a high-speed arithmetic processing unit (DSP) are available at a low cost, and a method for driving a motor in a sensorless manner is becoming common.
The method for driving a motor in a sensorless manner estimates a rotation angle based on constants such as a coil resistance and a coil inductance, a voltage applied to the coil and a current flowing through the coil, etc., and also calculates a rotational speed from the rotation angle. However, in practice, the values of the coil resistance and coil inductance are not stable and these values are not a constant in the strict sense. Accordingly, if an error occurs between a value that is set as a constant and an actual value, a problem arises that the rotation angle and the rotational speed cannot be estimated accurately, in particular in a low-speed rotation range.
JP 2007-97263 A discloses an invention that eliminates an operational complexity which may occur in a sensorless control.
However, a motor needs to be controlled by accurately estimating and calculating a rotation angle of the motor even in the low-speed rotation range.